МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
ЗВІТ
До лабораторної роботи №3
З курсу :”Комп’ютерна графіка”
На тему:
“ УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ ”
Львів 2014
Мета роботи - вивчити функції для управління кольорами та стилями графічних зображень; навчитися складати програми на алгоритмічній мові C++ для побудови різноманітних графічних зображень.
ЗАВДАННЯ
Написати програму на алгоритмічній мові C++, яка виводить на екран розмальоване графічне зображення.
19.
/
БЛОК-СХЕМА
/
СПИСОК ФУНКЦІЙ ВИКОРИСТАНИХ В ПРОГРАМІ
MovcTo(int x, int у) - переміщує поточну вершину, jc, у визначають координати нової поточної вершини. Повертає х- та y-координати попередньої поточної вершини як CPoint об’єкт.
LineTo(int x, int y )- малює лінію з поточної вершини до вершини з координатами лс, у. Поточна вершина переміщується у вершину з координатами jc, у.
CreatePen(int nPenStyle, int пWidth, COLORREF crColor) - ініціалізує перо заданими атрибутами.
Rectangle(int x1,int y1,int x2, int y2) - малює прямокутник, x1, y1 задають координати верхнього лівого кута, a x2, у2 правого нижнього кута прямокутника.
COLORREF RGB(BYTE by Red, BYTE byGreen, BYTE byBlue) - повертає колір, який базується на заданих червоній (byRed), зеленій (byGreen) та синій (byBlue) компонентах.
FloodFill(int х, int у, COLORREF crColor) - замальовує область екрану поточним пензлем, х, у - координати крапки всередині замкнутої області. crColor - колір межі до якої буде здійснюватися замальовування. Якщо фігура не замкнута то буде замальовано весь екран.
ТЕКСТ ПРОГРАМИ:
#include "stdafx.h"
#include "PKG lab_3.h"
#include "ChildView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CChildView::CChildView()
{
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView, CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL);
return TRUE;
}
void CChildView::OnPaint() /// variant 19, laba 3 ///////// Variant 7 , laba 4
{
CPaintDC dc(this); // контекст устройства для рисования
// TODO: Добавьте код обработки сообщений
CPen pen,wr,ws,WD,SD;
wr.CreatePen(0,0, RGB(0,0,0));
dc.SelectObject(&wr);
///////////
dc.Rectangle(100,20,1200,270);
////////////
WD.CreatePen(0,0, RGB(0,0,0));
dc.SelectObject(&WD);
///////////////
dc.MoveTo(450,270);
dc.LineTo(950,270);
dc.MoveTo(450,270);
dc.LineTo(100,400);
dc.LineTo(850,650);
dc.LineTo(950,270);
//////////////////
CBrush blue_brush;
blue_brush.CreateSolidBrush(RGB(250, 245, 0));
dc.SelectObject(&blue_brush);
dc.FloodFill(150, 50, RGB(0,0,0));
////////////////
CBrush green_brush;
green_brush.CreateSolidBrush(RGB(0, 0, 250));
dc.SelectObject(&green_brush);
dc.FloodFill(500, 290, RGB(0,0,0));
//////////////
pen.CreatePen(20,20, RGB(0,0,0));
dc.SelectObject(&pen);
///////////////////B
dc.MoveTo(150,40);
dc.LineTo(150,240);
dc.LineTo(250,240);
dc.LineTo(250,180);
dc.MoveTo(150,140);
dc.LineTo(220,140);
dc.LineTo(250,100);
dc.MoveTo(220,140);
dc.LineTo(250,180);
dc.MoveTo(250,100);
dc.LineTo(250,40);
dc.LineTo(150,40);
//////////////////O
dc.MoveTo(300,40);
dc.LineTo(300,40);
dc.LineTo(300,240);
dc.LineTo(400,240);
dc.LineTo(400,40);
dc.LineTo(300,40);
/////////////////R
dc.MoveTo(450,40);
dc.LineTo(450,240);
dc.MoveTo(450,40);
dc.LineTo(550,40);
dc.LineTo(550,140);
dc.LineTo(450,140);
dc.LineTo(550,240);
////////////////L
dc.MoveTo(600,40);
dc.LineTo(600,240);
dc.LineTo(700,240);
/////////////////A
dc.MoveTo(750,40);
dc.LineTo(750,240);
dc.MoveTo(750,40);
dc.LineTo(850,40);
dc.LineTo(850,240);
dc.MoveTo(850,140);
dc.LineTo(750,140);
//////////////////N
dc.MoveTo(900,240);
dc.LineTo(900,40);
dc.LineTo(...